libxl: do not attempt to write "shutdown" dm-command
authorIan Jackson <ian.jackson@eu.citrix.com>
Thu, 20 Jan 2011 16:32:33 +0000 (16:32 +0000)
committerIan Jackson <ian.jackson@eu.citrix.com>
Thu, 20 Jan 2011 16:32:33 +0000 (16:32 +0000)
libxl_domain_destroy writes the command "shutdown" to the xenstore
node with which it communicates with qemu.  However:
 - qemu does not understand this command and ignores it (printing a
   message)
 - libxl doesn't wait for the answer and immediately pauses the domain
   anyway
 - destroy is the ungraceful (force) operation and should not
   negotiate with qemu anyway
 - even in the graceful shutdown case, there would actually be nothing
   that qemu needs to do.

Under some circumstances, this entry in xenstore will survive the
domain's death, ie be leaked.

So remove the erroneous code.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/libxl/libxl.c

index 7ffb985b86ec27bdbd8d299ec33ffa968067a475..a8f71951a9754d66d22a421555bb5fd708dba465 100644 (file)
@@ -682,11 +682,6 @@ int libxl_domain_destroy(libxl_ctx *ctx, uint32_t domid, int force)
 
     if (libxl_device_pci_shutdown(ctx, domid) < 0)
         LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "pci shutdown failed for domid %d", domid);
-    if (dm_present) {
-        xs_write(ctx->xsh, XBT_NULL,
-                 libxl__sprintf(&gc, "/local/domain/0/device-model/%d/command", domid),
-                 "shutdown", strlen("shutdown"));
-    }
     rc = xc_domain_pause(ctx->xch, domid);
     if (rc < 0) {
         LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, rc, "xc_domain_pause failed for %d", domid);